5
תגובות

PDO ועברית

פתח GLaDOS ,
שלום.
אני התחלתי לעבוד עם PDO ואני מנסה לשלוף שורות מטבלה מסויימת וזה לא עובד בגלל העברית.
לדוגמה:

SELECT * FROM users WHERE firstName = 'Name'

עובד

SELECT * FROM users WHERE firstName = 'שם'

לא עובד

מה אפשר לעשות?

5 תשובות

avatar ענה OrelBeY ב 29 לינואר 2013 #

יכול להיות שהמאמר על קידוד יעזור לך. (במקרה הזה בעיקר 4-5.)

avatar ענה GLaDOS ב 29 לינואר 2013 #

עשיתי הכל ועדיין אותה בעיה.
קוד ההתחברות:

$db = new PDO( 'mysql:host=' . HOST . ';charset=utf8;dbname=' . DBNAME, USERNAME, PASSWORD, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'") );

avatar ענה intval ב 29 לינואר 2013 #

יכול להיות שהבעיה לא בחיבור.
אם אתה נכנס לטבלה דרך phpmyadmin אתה רואה הכל בסדר או ג'יבריש?
יכול מאוד להיות שהטבלה או השדות עצמם בקידוד אחר או שההכנסה כבר התבצעה בקידוד לא נכון.

+ לפני שעברת ל PDO הכל עבד ?
+ בעיקרון לא צריך גרשיים ב set names

$pdo = new PDO(
    'mysql:host=mysql.example.com;dbname=example_db',
    "username",
    "password",
    array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));

avatar ענה GLaDOS ב 29 לינואר 2013 #

הבעיה הייתה בטבלה במסד.
תודה רבה לשניכם, נורא עזרתם לי! :)

avatar ענה iiddaannyy ב 29 לינואר 2013 #

מ-php 5.3.6 (אני כמעט בטוח שזו הגירסה) אפשר להכניס ל-DSN פרמטר charset שיהיה שווה ל-utf8 במקום להריץ set names.